/**
  ******************************************************************************
  * @file 
  * @brief 液氮面控制
  * @author luffy
  * @version V1.0.0
  * @date 2022/12/14
  ******************************************************************************
  */

#ifndef _LNCUP_CTL_TASK_H
#define _LNCUP_CTL_TASK_H

#include <stdint.h>
#include "func_pid.h"

/* Public defines -----------------------------------------------------------*/

/* Public enum    -----------------------------------------------------------*/
enum {
    LNCUP_STATE_ZERO    = 0,
    LNCUP_STATE_RESET,
    LNCUP_STATE_RUN,
    LNCUP_STATE_STOP,
};

/* Public Struct  -----------------------------------------------------------*/
//液氮面控制数据结构
typedef struct LNCTRL_tag
{
    func_pid_t     pid;                      //比例阀控制PID参数
	float          targetTemp;               //液氮面控制目标温度
	float          zeroForwardStep;          //电机找零前移步数
	float          zeroReverseStep;          //电机找零后移步数
	float          resetStep;                //电机从零点到液氮控制复位位置步数
	float          stopStep;                 //电机液氮控制结束回到零点步数
	uint16_t       sampleCycle;              //PID采集周期
	uint16_t       enable;                   //控制使能
} LNCTRL,*PLNCTRL;

/* Public Variable  ---------------------------------------------------------*/
//Pointer
extern LNCTRL     s_LNCTRL;
//Array

//Const


/* Pubilc function prototypes -----------------------------------------------*/
void LNCON_Init(void);
void LNCON_Thread(void *pvParameters);

#endif /* _LNCUP_CTL_TASK_H */

/******************* (C) COPYRIGHT 2022 CIQTEK luffy *****END OF FILE****/
